package cron

import (
	"time"

	"github.com/go-co-op/gocron"
	"github.com/gofiber/fiber/v2"
)

// 初始化定时任务
func InitializeCron() {

	timezone, _ := time.LoadLocation("Asia/Shanghai")
	s := gocron.NewScheduler(timezone)

	// 需每天执行的任务 (每个线程都有监听同一个log文件，写个并发)
	// s.Every(1).Day().At("00:00").Do(RestartLog) // 重启日志

	// 定时任务只需要在主线程中执行一次即可
	if !fiber.IsChild() {
		s.Every(5).Seconds().Do(cron1)
	}

	// s.Every(5).Seconds().Do(TestDb)

	// 异步调用，与fiber不冲突。
	s.StartAsync()

	// 解析crontab表达式，每分钟执行一次
	// s.Cron("0 0 * * *").Do(RestartLog)

	// 每3秒执行一次
	// s.Every(3).Seconds().Do(cron1)

	// 阻塞调用, 不能用在这里
	// s.StartBlocking()
}

func cron1() {
	// fmt.Println(time.Now().Format("2006-01-02 15:04:05"))
}
